A semiconductor memory may experience a hard error or a soft error. A hard error occurs when a read writeable semiconductor memory cell becomes stuck at one logical state and will not change to another logical state to store a data bit. A soft error occurs when the stored logical state of a read writeable semiconductor memory cell is upset and changes, such as from logical one to logical zero or from logical zero to logical one.
A soft error may be due to alpha particles, released from cosmic ray impacts for example, that upset the electronic charges representing the logical state stored in a memory cell. Alternatively, a soft error may be due to inadvertent decay in the electronic charges stored in a memory cell, such as from the age and decay of materials used in the manufacture of memory. A soft error may alternatively occur from electrical noise in a circuit coupled into a memory cell to alter the stored charges therein. In any case, the memory cell is usually not damaged and can be rewritten (referred to as scrubbed) to store the proper charge and logic state of data again.
There are different kinds of semiconductor memory with different kinds of semiconductor memory cells. Content addressable memory (CAM), also referred to as associative memory, is a type of semiconductor memory that functionally differs from a random access memory (RAM), such as a static random access memory (SRAM) or a dynamic random access memory (DRAM). With decreased transistor sizes due to semiconductor manufacturing improvements, more recently designed CAMs have greater capacities and have become less expensive to integrate into an integrated circuit. Thus, CAMs have become more popular to use as a component in integrated circuits. However, smaller transistor sizes and lower power supplies have made memory cells, such as those found in CAMs, more susceptible to soft errors.
With a RAM, in the case of a read operation, a memory address is provided to the RAM to read data out from memory locations therein associated with the supplied memory address. In the case of a write operation, a memory address is provided to the RAM to write data into memory locations therein associated with the supplied memory address.
With a CAM, data (e.g., address into another memory) may be randomly stored into lines of its memory locations (CAM lines) similar to a database. Like a search on a database, it is desirable to know if certain given data is stored in the CAM and if so, what CAM lines match the certain given data. The address of the CAM lines that match, referred to as a tag or pointer, often points to further information in a different memory. For example, a client supplies a word of data (a “client data word”) that may or may not be stored in the CAM. The CAM searches throughout the words of data stored into the CAM lines for the client data word. If the client data word is found stored in the CAM, referred to as a hit, one or more addresses where the client data word is found are returned to the client. If the client data word is not found stored in the CAM, referred to as a miss, a miss signal is generated by the CAM.
The longer period of time that data is stored in a memory cell, the greater the probability it may experience a soft error. If a memory cell is refreshed periodically with new or rewritten data, the probability it experiences a soft error is less. In a CAM, data may be stored in the memory cells of CAM lines for a long period of time such that it may be more susceptible to soft errors. Furthermore, a greater storage capacity or size of a memory, increases the probability it may experience a soft error. Thus, larger CAMs may be more susceptible to soft errors.
The way in which CAMs function—stored data in all CAM lines is compared to a certain given data—makes it difficult to detect a changed bit due to soft error. If a soft error occurs in a CAM, a false miss or false hit may be generated which is undesirable. A false miss is particularly problematic, because the pointer provided by the CAM address is lost. A false hit is less problematic because it is easier to detect a false pointer provided by a false match in a CAM.
It is desirable to improve the control and operation of CAMs such that false misses can be detected in order to reduce failure rates and improve reliability of the overall systems that include CAMs.